CXX = /usr/bin/g++
CXXFLAGS = -std=c++2a -fconcepts -O3

clean:
	rm -f *.out *.o *.S

instr_printer.o:
	$(CXX) $(CXXFLAGS) -c instr_printer.cpp -o instr_printer.o

test: instr_printer.o
	$(CXX) $(CXXFLAGS) test_print.cpp instr_printer.o -o test_print.out 
	./test_print.out 

fft: instr_printer.o
	$(CXX) $(CXXFLAGS) fft.cpp instr_printer.o -o fft.out 
	./fft.out 7 .

fft_test: instr_printer.o
	$(CXX) $(CXXFLAGS) fft_test.cpp instr_printer.o -o fft_test.out 
	./fft_test.out 2 .

data: instr_printer.o
	$(CXX) $(CXXFLAGS) data_flow.cpp instr_printer.o -o data.out 
	./data.out
	

write: instr_printer.o
	$(CXX) $(CXXFLAGS) test_write.cpp instr_printer.o -o write.out
